package com.example.myweb.Service.Auth;

import com.example.myweb.Domain.Entity.Topic;
import com.example.myweb.Dto.FeedItemDTO;
import com.example.myweb.Dto.TopicDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Set;

public interface TopicService {
    /**
     * 根据一组话题名称，查找或创建对应的Topic实体。
     * 这是话题功能的核心复用逻辑。
     * @param topicNames 话题名称列表
     * @return 对应Topic实体的集合
     */
    Set<Topic> findOrCreateTopics(List<String> topicNames);

    List<TopicDTO> getHotTopics(int limit);

    Page<FeedItemDTO> getContentByTopicName(String topicName, Pageable pageable);

    void incrementTopicHotScore(Set<Topic> topics, int score);
    List<TopicDTO> searchTopics(String keyword, int limit);
}